<?php
/**

 //  DoYouHaoBaby-X Ucenter ( DoYouHaoBaby-X 计划 )
 //  +---------------------------------------------------------------------
 //
 //  “Copyright”
 //  +---------------------------------------------------------------------
 //	 | (C) 2010 - 2011 http://doyouhaobaby.net All rights reserved.
 //	 | This is not a free software, use is subject to license terms
 //  +---------------------------------------------------------------------
 //
 //  “About This File”
 //  +---------------------------------------------------------------------
 //	 | Ucenter 会话模型
 //  +---------------------------------------------------------------------

*/

!defined( 'DYHB_PATH' ) && exit;

class UserModel extends CommonModel{


	/**
     * 返回对象的定义
     */
    static public function init__(){

        return array(

            'behaviors' => 'rbac',

            'behaviors_settings' => array(

                 // '插件名' => array( '选项' => 设置 ),
				'rbac' => array(

                    'password_prop' => 'user_password',
                    'rbac_data_props' => 'user_id,user_name,user_lastlogintime,user_lastloginip,user_logincount,user_email,user_remark,create_dateline,user_registerip,update_dateline,user_status'
               ),
            ),

            'table_name' => 'user',

            'props' => array(

                // 主键应该是只读，确保领域对象的“不变量”
               'user_id' => array( 'readonly' => true ),

               // 用户名也不允许修改
               'user_name'=> array( 'readonly' => true ),
            ),

            'attr_protected' => 'user_id',

            'check' => array(

                  // 用户昵称
                 'user_nikename'=>array(

                     array( 'require',G::L( '用户昵称不能为空' ) ),
                 ),

                 // E-mail格式验证
                 'user_email'=>array(

                     array( 'require',G::L( 'E-mail不能为空' ) ) ,
                     array( 'email',G::L( 'E-mail格式错误' ) ),
                     array( 'max_length',150, G::L( 'E-mail不能超过150个字符' ) )
                  ),

                  // 用户名格式
                  'user_name'=>array(

                      array( 'require',G::L( '用户名不能为空' ) ),
                      array( 'number_underline_english',G::L( '用户名只能是字母，数字和下划线' ) )
                  ),

                  // 用户密码验证
                  'user_password'=>array(

                      array( 'require',G::L( '用户密码不能为空' ) ),
                      array( 'min_length',6,G::L( '用户密码最小长度为6个字符！' ) ),
                      array( 'max_length',25,G::L( '用户密码最大长度为25个字符！' ) ),
                  ),

            ),

        );

    }


	/**
     * 开启一个查询，查找符合条件的对象或对象集合
     */
    static function F( ){

        $arrArgs = func_get_args();
        return ModelMeta::instance( __CLASS__ )->findByArgs( $arrArgs );
    }


    /**
     * 返回当前 Model 类的元数据对象
     */
    static function M( ){

        return ModelMeta::instance(__CLASS__);
    }

}
